// package: rewords-server-2024
// filename: entity
// author: diogoxiang@gmail.com
// time: 2025/1/22 14:26

package entity

import (
	"context"
	"github.com/gogf/gf/v2/errors/gerror"
)

// SysAiModel AI模型配置
type SysAiModel struct {
	PublicTime `bson:",inline"`
	Id         int64  `bson:"id" json:"id" description:"ID"`
	Platform   string `bson:"platform" json:"platform" description:"平台"`
	Name       string `bson:"name" json:"name" description:"当前在用-模型名称"`
	Status     int    `bson:"status" json:"status" description:"状态"`
	Url        string `bson:"url" json:"url" description:"Api请求模型地址"`
	ApiKey     string `bson:"api_key" json:"api_key" description:"ApiKey"`
	DocUrl     string `bson:"doc_url" json:"doc_url" description:"Api文档地址"`
	Info       string `bson:"info" json:"info" description:"模型细节配置JSON"`
	Remark     string `bson:"remark" json:"remark" description:"备注"`
	Sort       int    `bson:"sort" json:"sort" description:"排序"`
	MaxToken   int64  `bson:"max_token" json:"max_token" description:"每天最多使用token"`
}

// Filter 过滤接口
func (in *SysAiModel) Filter(ctx context.Context) (err error) {

	if in.Name == "" {
		err = gerror.New("名称不能为空")
		return
	}
	if in.Url == "" {
		err = gerror.New("url不能为空")
		return
	}

	return
}

// SysAiModelLog AI模型日志
type SysAiModelLog struct {
	PublicTime `bson:",inline"`
	Id         string `bson:"id" json:"id" description:"ai模型日志ID"`
	Name       string `bson:"name" json:"name" description:"ai模型名称"`
	ApiKey     string `bson:"api_key" json:"api_key" description:"ApiKey"`
	InToken    int64  `bson:"in_token" json:"in_token" description:"输入token"`
	OutToken   int64  `bson:"out_token" json:"out_token" description:"输出token"`
	Remark     string `bson:"remark" json:"remark" description:"备注"`
}
